package com.hos.entity.his;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Size;

import java.io.Serializable;

import java.math.BigDecimal;
import java.util.Date;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.hibernate.validator.constraints.Length;

/**
* 收费表
* @TableName his_order_charge
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@TableName(value = "his_order_charge")
public class OrderCharge implements Serializable {

    /**
    * 收费ID
    */
    @NotBlank(message="[收费ID]不能为空")
    @Size(max= 25,message="编码长度不能超过25")
    @ApiModelProperty("收费ID")
    @Length(max= 25,message="编码长度不能超过25")
    @TableId
    private String orderId;
    /**
    * 总费用
    */
    @ApiModelProperty("总费用")
    private BigDecimal orderAmount;
    /**
    * 病历ID
    */
    @Size(max= 25,message="编码长度不能超过25")
    @ApiModelProperty("病历ID")
    @Length(max= 25,message="编码长度不能超过25")
    private String chId;
    /**
    * 挂号单
    */
    @Size(max= 25,message="编码长度不能超过25")
    @ApiModelProperty("挂号单")
    @Length(max= 25,message="编码长度不能超过25")
    private String regId;
    /**
    * 患者名称
    */
    @Size(max= 255,message="编码长度不能超过255")
    @ApiModelProperty("患者名称")
    @Length(max= 255,message="编码长度不能超过255")
    private String patientName;
    /**
    * 订单状态0未支付  1 支付成功  2支付超时 3支付失败 字典表his_order_charge_status
    */
    @ApiModelProperty("订单状态0未支付  1 支付成功  2支付超时 3支付失败 字典表his_order_charge_status")
    private String orderStatus;
    /**
    * 支付ID
    */
    @Size(max= 50,message="编码长度不能超过50")
    @ApiModelProperty("支付ID")
    @Length(max= 50,message="编码长度不能超过50")
    private String payPlatformId;
    /**
    * 支付时间
    */
    @ApiModelProperty("支付时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    private Date payTime;
    /**
    * 支付类型0现金1支付宝  字典表his_pay_type_status
    */
    @ApiModelProperty("支付类型0现金1支付宝  字典表his_pay_type_status")
    private String payType;
    /**
    * 创建时间
    */
    @ApiModelProperty("创建时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    private Date createTime;
    /**
    * 更新时间
    */
    @ApiModelProperty("更新时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    private Date updateTime;
    /**
    * 创建者
    */
    @Size(max= 64,message="编码长度不能超过64")
    @ApiModelProperty("创建者")
    @Length(max= 64,message="编码长度不能超过64")
    private String createBy;
    /**
    * 更新者
    */
    @Size(max= 64,message="编码长度不能超过64")
    @ApiModelProperty("更新者")
    @Length(max= 64,message="编码长度不能超过64")
    private String updateBy;

    //退费总金额
    @TableField(exist = false)
    private Integer payTotalPrice;

}
